import Qs from 'qs'
import axios from "axios"
import { Message } from 'element-ui'
import Cookie from 'js-cookie'
import { baseUrl } from './util'
axios.defaults.timeout = 600000;
var _this = this
axios.defaults.transformResponse = [function(data) {
    if (typeof data == 'string') {
        data = JSON.parse(data)
    }

    return data
}]

axios.interceptors.request.use(function(config) {
    console.log(config)
    console.log('获取 token77')
    console.log(Cookie.get('token'))
        // if (Cookie.get('token')) {
        //     console.log('获取 token')
        //     console.log(Cookie.get('token'))
        //     config.headers['token'] = Cookie.get('token')
        // }
    let token = Cookie.get("token")
    if (token && token !== 'undefined') {
        config.headers['token'] = token;
    } else {
        console.log('没有 token')
        config.headers['token'] = '';
    }
    return config;
}, function(error) {
    return Promise.reject(error);
});

axios.interceptors.response.use((res) => {
    return res;
}, (error) => {
    return Promise.reject(error);
});

function http(type, url, params, contentType, responseType = 'json') {
    var conType = contentType == 'json' ? 'application/json' : 'application/x-www-form-urlencoded'
    let paramstranform = contentType == 'json' ? params : Qs.stringify(params)
    var jointUrl = baseUrl() + url
    var parm = 
        {
            method: type,
            url: jointUrl,
            responseType: responseType
        }
        if (type=='get') {
            parm['params'] = params
        } else {
            parm['data'] = paramstranform
        }
    
    return new Promise((resolve, reject) => {
        axios(parm).then(res => {
            if (res.data.code == '0004') {
                Message.error({ message: '请登录' });
                Cookie.remove('token')
                this.$router.push("/login")
            } else if (res.data.code !== '0000') {
                Message.error({ message: res.data.message });
            }
            resolve(res.data)
        }).catch(err => {
            console.log(err)
            Message.error({ message: '网络超时，请稍后再试' });
        })
    })
}

// if (type == 'post') {
//     return new Promise((resolve, reject) => {
//         axios({
//             method: 'post',
//             url: jointUrl,
//             data: paramstranform,
//             responseType: responseType
//         }).then(res => {
//             if (res.data.code == '0004') {
//                 Message.error({ message: 'token失效请重新登录' });
//                 Cookie.remove('token')
//                 next("/login")
//                     //window.location.href = "/login"
//             } else if (res.data.code !== '0000') {
//                 if (res.data.message) {
//                     Message.error({ message: res.data.message });
//                 }

//             }
//             resolve(res.data)
//         }).catch(err => {
//             Message.error({ message: '网络超时，请稍后再试' });
//         })
//     })
// } else if (type == 'delete') {

//     return new Promise((resolve, reject) => {
//         axios({
//             method: 'delete',
//             url: jointUrl,
//             params: params,
//         }).then(res => {
//             if (res.data.code == '0004') {
//                 Message.error({ message: 'token失效请重新登录' });
//                 Cookie.remove('token')
//                 next("/login")
//                     // window.location.href = "/login"
//             } else if (res.data.code !== '0000') {
//                 if (res.data.message) {
//                     Message.error({ message: res.data.message });
//                 }

//             }
//             resolve(res.data)
//         }).catch(err => {
//             Message.error({ message: '网络超时，请稍后再试' });
//         })
//     })
// } else {
//     return new Promise((resolve, reject) => {
//         axios({
//             method: type,
//             url: jointUrl,
//             data: paramstranform
//         }).then(res => {
//             if (res.data.code == '0004') {
//                 Message.error({ message: 'token失效请重新登录' });
//                 Cookie.remove('token')
//                 next("/login")
//                     // window.location.href = "/login"
//             } else if (res.data.code !== '0000') {
//                 Message.error({ message: res.data.message });
//             }
//             resolve(res.data)
//         }).catch(err => {
//             Message.error({ message: '网络超时，请稍后再试' });
//         })
//   })
// }
// }
export default http;